#! /usr/bin/env/pyrhon3
# coding:utf-8
'''
    功能：判断密码强弱
    作者：王楠
    版本：4.0
    日期：2020/02/29
    新增：1.0：判断密码强度
         2.0：增加设置密码限制
         3.0：将密码及其强度保存到文件中
         4.0: 文件读取
'''


def check_number_exist(pwd_str):
    '''
        函数：判断是否含有数字,默认不含有
    '''
    number_exist = False
    for x in pwd_str:
        if x.isnumeric():
            number_exist = True
            break
    return number_exist


def check_letter_exist(pwd_str):
    '''
        函数：判断是否含有字母，默认不含有
    '''
    letter_exist = False
    for x in pwd_str:
        if x.isalpha():
            letter_exist = True
            break
    return letter_exist


def check_strength_level(pwd_str):
    '''
        函数：判断密码强度水平，并返回
    '''
    strength_level = 0
    if len(pwd_str) >= 8:
        strength_level += 1
    else:
        print('密码强度小于8')
    if check_number_exist(pwd_str):
        strength_level += 1
    else:
        print('密码要求包含数字')
    if check_letter_exist(pwd_str):
        strength_level += 1
    else:
        print('密码要求包含字母')
    return strength_level


def read_password():
    '''
        读取文件内容
    '''
    f = open('/home/wangnan/文档/python/小象学院/05 判断密码强弱/password_3.0.txt', 'r')
    content = f.read()
    print(content)
    f.close


def pwd_strength_main():
    # 密码强度

    pwd_str = input('请输入密码：')
    count = 1
    while count <= 3:
        strength_level = check_strength_level(pwd_str)
        f = open('/home/wangnan/文档/python/小象学院/05 判断密码强弱/password_3.0.txt', 'a')
        # 密码强度水平
        print('密码强度水平：', strength_level)
        if strength_level == 3:
            print('密码强度合格')
            f.write('密码：{}  ， 强度为{}  密码强度合格\n'.format(pwd_str, strength_level))
            break
        else:
            print('密码强度不合格，请再次设置')
            f.write('密码：{}  ， 强度为{}  密码强度不合格\n'.format(pwd_str, strength_level))
            pwd_str = input('请输入密码：')
            count += 1
        f.close()
    if count > 3:
        print('密码设置超过次数')
        is_quit = input('是否重新设置[y/n]:')
        if is_quit == 'y':
            pwd_strength_main()

    f = open('/home/wangnan/文档/python/小象学院/05 判断密码强弱/password_3.0.txt', 'r')
    # content = f.read()
    # content = f.readline()
    # print(content)
    for lines in f:
        print(lines)
    f.close


if __name__ == '__main__':
    pwd_strength_main()
